#ifndef UNIFORMINTDISTRIBUTION_H
#define	UNIFORMINTDISTRIBUTION_H

#include <boost/random.hpp>
#include <boost/random/random_device.hpp>

class UniformIntDistribution {
public:
    UniformIntDistribution(int lowerbound = 0, int upperbound = std::numeric_limits<int>::max());
    virtual ~UniformIntDistribution();
    int Sample();
    int min();
    int max();
    static int rand(int = 0, int = std::numeric_limits<int>::max());

private:
    boost::random::random_device *generator;
    boost::random::uniform_int_distribution<int> *distribution;
    boost::variate_generator < boost::random::random_device&, boost::random::uniform_int_distribution<int> > *variate_generator;
};

#endif	/* UNIFORMINTDISTRIBUTION_H */
